﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.IO;
using Modellayer;

namespace BioWCF
{
    [ServiceContract]
    public interface IBioService
    {
        [OperationContract]
        void createEmployee(int phoneNumber, string email, string password, string name, string loginId);

        [OperationContract]
        void createCustomer(int phoneNumber, string email, string password, string name);

        [OperationContract]
        Person findPerson(int phoneNumber);

        [OperationContract]
        Person findPersonByLoginIdAndPassword(string loginId, string password);

        [OperationContract]
        void updatePerson(int phoneNumber, string name, string email, string password);

        [OperationContract]
        void deletePerson(int phoneNumber);

        [OperationContract]
        void createReservation(List<int> seatNumbers, int showId, int phoneNumber);

        [OperationContract]
        void deleteReservation(int reservationId);

        [OperationContract]
        void createShowRoom(int showRoomNumber, int numberOfSeats);

        [OperationContract]
        void updateNumberOfSeats(int showRoomNumber, int numberOfSeats);

        [OperationContract]
        void addDescription(int showRoomNumber, string showRoomDescription);

        [OperationContract]
        void createShow(string showTime, ShowRoom showRoom, Movie movie);

        [OperationContract]
        Seat findSeat(int showId, int seatNumber);

        [OperationContract]
        void unLockSeat(int showId, int seatNumber);

        [OperationContract]
        void lockSeat(int showId, int seatNumber);

        [OperationContract]
        void reserveSeat(int showId, int seatNumber, int reservationId);

        [OperationContract]
        Show findShow(int showId);

        [OperationContract]
        List<Seat> getAllSeats(int showId);

        [OperationContract]
        void createMovie(string title, string movieLength);

        [OperationContract]
        void updateMovie(string title, string movieLength, string description);

        [OperationContract]
        Movie findMovie(string title);

        [OperationContract]
        void deleteMovie(string title);

        [OperationContract]
        List<Show> findShowsByTitleAndDate(string dato, string title);

        [OperationContract]
        List<Movie> findAllMovies();

        [OperationContract]
        List<string> findDatesByMovie(string title);

        [OperationContract]
        List<Show> findShowsByDate(string date);

        [OperationContract]
        List<ShowRoom> findFreeShowRoomsByDate(string date);

        [OperationContract]
        List<ShowRoom> findAllShowRooms();

        [OperationContract]
        ShowRoom findShowRoom(int showroomnumber);

        [OperationContract]
        Reservation findReservation(int reservationid);

        [OperationContract]
        int getLastMax();

        [OperationContract]
        void updateSeat(Seat seat);
    }
}